延續昨天作用域,今天就來更細談認識 ES6 變數宣告的方式。
var
:作用域是依 function 區分let
、const
:作用域是{} block 區塊var
、let
差異var
,會渲染到外面變數
var i = 0
for (var i = 0; i < 10; i++) {
console.log("跑到第" + i + "次");
}
console.log(i) ; // JS 21行
let
let i = 0
for (let i = 0; i < 10; i++) {
console.log("跑到第" + i + "次");
}
console.log(i);
if
、elae
迴圈為例以var
為例,原本x設為1,在判斷式跑完後,變成5
var x = 1;
if (x === 1) {
var x = 5;
} else {
var x = 19;
}
console.log(x)
以let
為例,可以發現在外面宣告let y = 1;
並沒有受影響。
let y = 1;
if (y === 1) {
let y = 5;
} else {
let y = 19;
}
console.log(y)
const
常數dog = 'Tom'
後面要再修改變數的內容就會發生錯誤 <script>
const dog = 'Tom';
dog = 'Mary';
</script>
const
定義物件... name: 'Wang'
,在外面改變其值的內容,並印出來,可以發現修改為name : 'Jason'
<script>
const farm = {
name: 'Wang',
pet: 'dog'
}
farm['name'] = 'Jason';
console.log(farm);
</script>
push
資料進去喔! <script>
const a = { name: 'mike' };
const b = ['eva'];
a["age"] = 18;
b.push("tom");
console.log(a);
console.log(b)
</script>
參考資料:
ES6 開始的新生活 let, const
Javascript 學習筆記: 變數(Variable)宣告
JavaScript 使用const關鍵字宣告常數